/*
 * Auto generated C++ implementation for Mass Effect 2.
 *	by _silencer.
 */

#include "stdafx.h"
#include "unreal_game.h"

namespace game
{
	IMPLEMENT_PACKAGE_CLASS( OnlineSubsystemPC, OnlineSubsystemCommonImpl, OnlineSubsystemPC )


	Bool OnlineSubsystemPC::DeleteMessage( Byte LocalUserNum, Int MessageIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.DeleteMessage" );

		struct DeleteMessageParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Int MessageIndex; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.MessageIndex = MessageIndex;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::UnmuteAll( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.UnmuteAll" );

		struct UnmuteAllParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::MuteAll( Byte LocalUserNum, Bool bAllowFriends )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.MuteAll" );

		struct MuteAllParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool bAllowFriends: 1; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.bAllowFriends = bAllowFriends;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearFriendMessageReceivedDelegate( Byte LocalUserNum, MessageDelegate MessageDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearFriendMessageReceivedDelegate" );

		struct ClearFriendMessageReceivedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			MessageDelegate MessageDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.MessageDelegate = MessageDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddFriendMessageReceivedDelegate( Byte LocalUserNum, MessageDelegate MessageDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFriendMessageReceivedDelegate" );

		struct AddFriendMessageReceivedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			MessageDelegate MessageDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.MessageDelegate = MessageDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnFriendMessageReceived( Byte LocalUserNum, UniqueNetId SendingPlayer, String SendingNick, String Message )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnFriendMessageReceived" );

		struct OnFriendMessageReceivedParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId SendingPlayer; //offset = 4, size = 8
			String SendingNick; //offset = 12, size = 12
			String Message; //offset = 24, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.SendingPlayer = SendingPlayer;
		params.SendingNick = SendingNick;
		params.Message = Message;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::GetFriendMessages( Byte LocalUserNum, Array<OnlineFriendMessage> FriendMessages )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetFriendMessages" );

		struct GetFriendMessagesParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Array<OnlineFriendMessage> FriendMessages; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendMessages = FriendMessages;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearJoinFriendGameCompleteDelegate( JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearJoinFriendGameCompleteDelegate" );

		struct ClearJoinFriendGameCompleteDelegateParams
		{
			JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate; //offset = 0, size = 12
		} params;

		params.JoinFriendGameCompleteDelegate = JoinFriendGameCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddJoinFriendGameCompleteDelegate( JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddJoinFriendGameCompleteDelegate" );

		struct AddJoinFriendGameCompleteDelegateParams
		{
			JoinFriendGameCompleteDelegate JoinFriendGameCompleteDelegate; //offset = 0, size = 12
		} params;

		params.JoinFriendGameCompleteDelegate = JoinFriendGameCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnJoinFriendGameComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnJoinFriendGameComplete" );

		struct OnJoinFriendGameCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::JoinFriendGame( Byte LocalUserNum, UniqueNetId Friend )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.JoinFriendGame" );

		struct JoinFriendGameParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId Friend; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Friend = Friend;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearReceivedGameInviteDelegate( Byte LocalUserNum, ReceivedGameInviteDelegate ReceivedGameInviteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearReceivedGameInviteDelegate" );

		struct ClearReceivedGameInviteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReceivedGameInviteDelegate ReceivedGameInviteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReceivedGameInviteDelegate = ReceivedGameInviteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddReceivedGameInviteDelegate( Byte LocalUserNum, ReceivedGameInviteDelegate ReceivedGameInviteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddReceivedGameInviteDelegate" );

		struct AddReceivedGameInviteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReceivedGameInviteDelegate ReceivedGameInviteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReceivedGameInviteDelegate = ReceivedGameInviteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnReceivedGameInvite( Byte LocalUserNum, String InviterName )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnReceivedGameInvite" );

		struct OnReceivedGameInviteParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			String InviterName; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.InviterName = InviterName;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::SendGameInviteToFriends( Byte LocalUserNum, Array<UniqueNetId> Friends, String Text )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SendGameInviteToFriends" );

		struct SendGameInviteToFriendsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Array<UniqueNetId> Friends; //offset = 4, size = 12
			String Text; //offset = 16, size = 12
			Bool ReturnValue: 1; //offset = 28, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Friends = Friends;
		params.Text = Text;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::SendGameInviteToFriend( Byte LocalUserNum, UniqueNetId Friend, String Text )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SendGameInviteToFriend" );

		struct SendGameInviteToFriendParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId Friend; //offset = 4, size = 8
			String Text; //offset = 12, size = 12
			Bool ReturnValue: 1; //offset = 24, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Friend = Friend;
		params.Text = Text;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::SendMessageToFriend( Byte LocalUserNum, UniqueNetId Friend, String Message )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SendMessageToFriend" );

		struct SendMessageToFriendParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId Friend; //offset = 4, size = 8
			String Message; //offset = 12, size = 12
			Bool ReturnValue: 1; //offset = 24, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Friend = Friend;
		params.Message = Message;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearFriendInviteReceivedDelegate( Byte LocalUserNum, InviteDelegate InviteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearFriendInviteReceivedDelegate" );

		struct ClearFriendInviteReceivedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			InviteDelegate InviteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.InviteDelegate = InviteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddFriendInviteReceivedDelegate( Byte LocalUserNum, InviteDelegate InviteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFriendInviteReceivedDelegate" );

		struct AddFriendInviteReceivedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			InviteDelegate InviteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.InviteDelegate = InviteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnFriendInviteReceived( Byte LocalUserNum, UniqueNetId RequestingPlayer, String RequestingNick, String Message )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnFriendInviteReceived" );

		struct OnFriendInviteReceivedParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId RequestingPlayer; //offset = 4, size = 8
			String RequestingNick; //offset = 12, size = 12
			String Message; //offset = 24, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.RequestingPlayer = RequestingPlayer;
		params.RequestingNick = RequestingNick;
		params.Message = Message;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::RemoveFriend( Byte LocalUserNum, UniqueNetId FormerFriend )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.RemoveFriend" );

		struct RemoveFriendParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId FormerFriend; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FormerFriend = FormerFriend;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::DenyFriendInvite( Byte LocalUserNum, UniqueNetId RequestingPlayer )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.DenyFriendInvite" );

		struct DenyFriendInviteParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId RequestingPlayer; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.RequestingPlayer = RequestingPlayer;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::AcceptFriendInvite( Byte LocalUserNum, UniqueNetId RequestingPlayer )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AcceptFriendInvite" );

		struct AcceptFriendInviteParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId RequestingPlayer; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.RequestingPlayer = RequestingPlayer;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearAddFriendByNameCompleteDelegate( Byte LocalUserNum, FriendDelegate FriendDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearAddFriendByNameCompleteDelegate" );

		struct ClearAddFriendByNameCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			FriendDelegate FriendDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendDelegate = FriendDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddAddFriendByNameCompleteDelegate( Byte LocalUserNum, FriendDelegate FriendDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddAddFriendByNameCompleteDelegate" );

		struct AddAddFriendByNameCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			FriendDelegate FriendDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendDelegate = FriendDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnAddFriendByNameComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnAddFriendByNameComplete" );

		struct OnAddFriendByNameCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::AddFriendByName( Byte LocalUserNum, String FriendName, String Message )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFriendByName" );

		struct AddFriendByNameParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			String FriendName; //offset = 4, size = 12
			String Message; //offset = 16, size = 12
			Bool ReturnValue: 1; //offset = 28, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendName = FriendName;
		params.Message = Message;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::AddFriend( Byte LocalUserNum, UniqueNetId NewFriend, String Message )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFriend" );

		struct AddFriendParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId NewFriend; //offset = 4, size = 8
			String Message; //offset = 12, size = 12
			Bool ReturnValue: 1; //offset = 24, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.NewFriend = NewFriend;
		params.Message = Message;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::OnKeyboardInputComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnKeyboardInputComplete" );

		struct OnKeyboardInputCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	String OnlineSubsystemPC::GetKeyboardInputResults( Byte bWasCanceled )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetKeyboardInputResults" );

		struct GetKeyboardInputResultsParams
		{
			Byte bWasCanceled; //offset = 0, size = 1
			String ReturnValue; //offset = 4, size = 12
		} params;

		params.bWasCanceled = bWasCanceled;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearKeyboardInputDoneDelegate( InputDelegate InputDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearKeyboardInputDoneDelegate" );

		struct ClearKeyboardInputDoneDelegateParams
		{
			InputDelegate InputDelegate; //offset = 0, size = 12
		} params;

		params.InputDelegate = InputDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddKeyboardInputDoneDelegate( InputDelegate InputDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddKeyboardInputDoneDelegate" );

		struct AddKeyboardInputDoneDelegateParams
		{
			InputDelegate InputDelegate; //offset = 0, size = 12
		} params;

		params.InputDelegate = InputDelegate;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::ShowKeyboardUI( Byte LocalUserNum, String TitleText, String DescriptionText, Bool bIsPassword, Bool bShouldValidate, String DefaultText, Int MaxResultLength )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ShowKeyboardUI" );

		struct ShowKeyboardUIParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			String TitleText; //offset = 4, size = 12
			String DescriptionText; //offset = 16, size = 12
			Bool bIsPassword: 1; //offset = 28, size = 4
			Bool bShouldValidate: 1; //offset = 32, size = 4
			String DefaultText; //offset = 36, size = 12
			Int MaxResultLength; //offset = 48, size = 4
			Bool ReturnValue: 1; //offset = 52, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.TitleText = TitleText;
		params.DescriptionText = DescriptionText;
		params.bIsPassword = bIsPassword;
		params.bShouldValidate = bShouldValidate;
		params.DefaultText = DefaultText;
		params.MaxResultLength = MaxResultLength;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::SetOnlineStatus( Byte LocalUserNum, Int StatusId, Array<LocalizedStringSetting> LocalizedStringSettings, Array<SettingsProperty> Properties )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SetOnlineStatus" );

		struct SetOnlineStatusParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Int StatusId; //offset = 4, size = 4
			Array<LocalizedStringSetting> LocalizedStringSettings; //offset = 8, size = 12
			Array<SettingsProperty> Properties; //offset = 20, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.StatusId = StatusId;
		params.LocalizedStringSettings = LocalizedStringSettings;
		params.Properties = Properties;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearStorageDeviceChangeDelegate( StorageDeviceChangeDelegate StorageDeviceChangeDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearStorageDeviceChangeDelegate" );

		struct ClearStorageDeviceChangeDelegateParams
		{
			StorageDeviceChangeDelegate StorageDeviceChangeDelegate; //offset = 0, size = 12
		} params;

		params.StorageDeviceChangeDelegate = StorageDeviceChangeDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddStorageDeviceChangeDelegate( StorageDeviceChangeDelegate StorageDeviceChangeDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddStorageDeviceChangeDelegate" );

		struct AddStorageDeviceChangeDelegateParams
		{
			StorageDeviceChangeDelegate StorageDeviceChangeDelegate; //offset = 0, size = 12
		} params;

		params.StorageDeviceChangeDelegate = StorageDeviceChangeDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnStorageDeviceChange()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnStorageDeviceChange" );

		this->call_function( function, 0, 0 );
	}

	Byte OnlineSubsystemPC::GetNATType()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetNATType" );

		struct GetNATTypeParams
		{
			Byte ReturnValue; //offset = 0, size = 1
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearConnectionStatusChangeDelegate( ConnectionStatusDelegate ConnectionStatusDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearConnectionStatusChangeDelegate" );

		struct ClearConnectionStatusChangeDelegateParams
		{
			ConnectionStatusDelegate ConnectionStatusDelegate; //offset = 0, size = 12
		} params;

		params.ConnectionStatusDelegate = ConnectionStatusDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddConnectionStatusChangeDelegate( ConnectionStatusDelegate ConnectionStatusDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddConnectionStatusChangeDelegate" );

		struct AddConnectionStatusChangeDelegateParams
		{
			ConnectionStatusDelegate ConnectionStatusDelegate; //offset = 0, size = 12
		} params;

		params.ConnectionStatusDelegate = ConnectionStatusDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnConnectionStatusChange( Byte ConnectionStatus )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnConnectionStatusChange" );

		struct OnConnectionStatusChangeParams
		{
			Byte ConnectionStatus; //offset = 0, size = 1
		} params;

		params.ConnectionStatus = ConnectionStatus;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::IsControllerConnected( Int ControllerId )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsControllerConnected" );

		struct IsControllerConnectedParams
		{
			Int ControllerId; //offset = 0, size = 4
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.ControllerId = ControllerId;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearControllerChangeDelegate( ControllerChangeDelegate ControllerChangeDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearControllerChangeDelegate" );

		struct ClearControllerChangeDelegateParams
		{
			ControllerChangeDelegate ControllerChangeDelegate; //offset = 0, size = 12
		} params;

		params.ControllerChangeDelegate = ControllerChangeDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddControllerChangeDelegate( ControllerChangeDelegate ControllerChangeDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddControllerChangeDelegate" );

		struct AddControllerChangeDelegateParams
		{
			ControllerChangeDelegate ControllerChangeDelegate; //offset = 0, size = 12
		} params;

		params.ControllerChangeDelegate = ControllerChangeDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnControllerChange( Int ControllerId, Bool bIsConnected )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnControllerChange" );

		struct OnControllerChangeParams
		{
			Int ControllerId; //offset = 0, size = 4
			Bool bIsConnected: 1; //offset = 4, size = 4
		} params;

		params.ControllerId = ControllerId;
		params.bIsConnected = bIsConnected;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::SetNetworkNotificationPosition( Byte NewPos )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SetNetworkNotificationPosition" );

		struct SetNetworkNotificationPositionParams
		{
			Byte NewPos; //offset = 0, size = 1
		} params;

		params.NewPos = NewPos;

		this->call_function( function, &params, 0 );
	}

	Byte OnlineSubsystemPC::GetNetworkNotificationPosition()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetNetworkNotificationPosition" );

		struct GetNetworkNotificationPositionParams
		{
			Byte ReturnValue; //offset = 0, size = 1
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearExternalUIChangeDelegate( ExternalUIDelegate ExternalUIDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearExternalUIChangeDelegate" );

		struct ClearExternalUIChangeDelegateParams
		{
			ExternalUIDelegate ExternalUIDelegate; //offset = 0, size = 12
		} params;

		params.ExternalUIDelegate = ExternalUIDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddExternalUIChangeDelegate( ExternalUIDelegate ExternalUIDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddExternalUIChangeDelegate" );

		struct AddExternalUIChangeDelegateParams
		{
			ExternalUIDelegate ExternalUIDelegate; //offset = 0, size = 12
		} params;

		params.ExternalUIDelegate = ExternalUIDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnExternalUIChange( Bool bIsOpening )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnExternalUIChange" );

		struct OnExternalUIChangeParams
		{
			Bool bIsOpening: 1; //offset = 0, size = 4
		} params;

		params.bIsOpening = bIsOpening;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearLinkStatusChangeDelegate( LinkStatusDelegate LinkStatusDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearLinkStatusChangeDelegate" );

		struct ClearLinkStatusChangeDelegateParams
		{
			LinkStatusDelegate LinkStatusDelegate; //offset = 0, size = 12
		} params;

		params.LinkStatusDelegate = LinkStatusDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddLinkStatusChangeDelegate( LinkStatusDelegate LinkStatusDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddLinkStatusChangeDelegate" );

		struct AddLinkStatusChangeDelegateParams
		{
			LinkStatusDelegate LinkStatusDelegate; //offset = 0, size = 12
		} params;

		params.LinkStatusDelegate = LinkStatusDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnLinkStatusChange( Bool bIsConnected )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnLinkStatusChange" );

		struct OnLinkStatusChangeParams
		{
			Bool bIsConnected: 1; //offset = 0, size = 4
		} params;

		params.bIsConnected = bIsConnected;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::HasLinkConnection()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.HasLinkConnection" );

		struct HasLinkConnectionParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	UniqueNetId OnlineSubsystemPC::GetPlayerUniqueNetIdFromIndex( Int UserIndex, UniqueNetId Zero )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetPlayerUniqueNetIdFromIndex" );

		struct GetPlayerUniqueNetIdFromIndexParams
		{
			Int UserIndex; //offset = 0, size = 4
			UniqueNetId ReturnValue; //offset = 4, size = 8
			UniqueNetId Zero; //offset = 12, size = 8
		} params;

		params.UserIndex = UserIndex;
		params.Zero = Zero;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	String OnlineSubsystemPC::GetPlayerNicknameFromIndex( Int UserIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetPlayerNicknameFromIndex" );

		struct GetPlayerNicknameFromIndexParams
		{
			Int UserIndex; //offset = 0, size = 4
			String ReturnValue; //offset = 4, size = 12
		} params;

		params.UserIndex = UserIndex;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::RegisterStatGuid( UniqueNetId PlayerID, String ClientStatGuid )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.RegisterStatGuid" );

		struct RegisterStatGuidParams
		{
			UniqueNetId PlayerID; //offset = 0, size = 8
			String ClientStatGuid; //offset = 8, size = 12
			Bool ReturnValue: 1; //offset = 20, size = 4
		} params;

		params.PlayerID = PlayerID;
		params.ClientStatGuid = ClientStatGuid;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	String OnlineSubsystemPC::GetClientStatGuid()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetClientStatGuid" );

		struct GetClientStatGuidParams
		{
			String ReturnValue; //offset = 0, size = 12
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearRegisterHostStatGuidCompleteDelegateDelegate( RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearRegisterHostStatGuidCompleteDelegateDelegate" );

		struct ClearRegisterHostStatGuidCompleteDelegateDelegateParams
		{
			RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate; //offset = 0, size = 12
		} params;

		params.RegisterHostStatGuidCompleteDelegate = RegisterHostStatGuidCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddRegisterHostStatGuidCompleteDelegate( RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddRegisterHostStatGuidCompleteDelegate" );

		struct AddRegisterHostStatGuidCompleteDelegateParams
		{
			RegisterHostStatGuidCompleteDelegate RegisterHostStatGuidCompleteDelegate; //offset = 0, size = 12
		} params;

		params.RegisterHostStatGuidCompleteDelegate = RegisterHostStatGuidCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnRegisterHostStatGuidComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnRegisterHostStatGuidComplete" );

		struct OnRegisterHostStatGuidCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::RegisterHostStatGuid( String HostStatGuid )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.RegisterHostStatGuid" );

		struct RegisterHostStatGuidParams
		{
			String HostStatGuid; //offset = 0, size = 12
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.HostStatGuid = HostStatGuid;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	String OnlineSubsystemPC::GetHostStatGuid()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetHostStatGuid" );

		struct GetHostStatGuidParams
		{
			String ReturnValue; //offset = 0, size = 12
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::WriteOnlinePlayerScores( Array<OnlinePlayerScore> PlayerScores )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.WriteOnlinePlayerScores" );

		struct WriteOnlinePlayerScoresParams
		{
			Array<OnlinePlayerScore> PlayerScores; //offset = 0, size = 12
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.PlayerScores = PlayerScores;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearFlushOnlineStatsCompleteDelegate( FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearFlushOnlineStatsCompleteDelegate" );

		struct ClearFlushOnlineStatsCompleteDelegateParams
		{
			FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate; //offset = 0, size = 12
		} params;

		params.FlushOnlineStatsCompleteDelegate = FlushOnlineStatsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddFlushOnlineStatsCompleteDelegate( FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFlushOnlineStatsCompleteDelegate" );

		struct AddFlushOnlineStatsCompleteDelegateParams
		{
			FlushOnlineStatsCompleteDelegate FlushOnlineStatsCompleteDelegate; //offset = 0, size = 12
		} params;

		params.FlushOnlineStatsCompleteDelegate = FlushOnlineStatsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnFlushOnlineStatsComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnFlushOnlineStatsComplete" );

		struct OnFlushOnlineStatsCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::FlushOnlineStats()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.FlushOnlineStats" );

		struct FlushOnlineStatsParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::WriteOnlineStats( UniqueNetId Player, OnlineStatsWrite* StatsWrite )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.WriteOnlineStats" );

		struct WriteOnlineStatsParams
		{
			UniqueNetId Player; //offset = 0, size = 8
			OnlineStatsWrite* StatsWrite; //offset = 8, size = 4
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.Player = Player;
		params.StatsWrite = StatsWrite;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::FreeStats( OnlineStatsRead* StatsRead )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.FreeStats" );

		struct FreeStatsParams
		{
			OnlineStatsRead* StatsRead; //offset = 0, size = 4
		} params;

		params.StatsRead = StatsRead;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnReadOnlineStatsComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnReadOnlineStatsComplete" );

		struct OnReadOnlineStatsCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearReadOnlineStatsCompleteDelegate( ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearReadOnlineStatsCompleteDelegate" );

		struct ClearReadOnlineStatsCompleteDelegateParams
		{
			ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate; //offset = 0, size = 12
		} params;

		params.ReadOnlineStatsCompleteDelegate = ReadOnlineStatsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddReadOnlineStatsCompleteDelegate( ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddReadOnlineStatsCompleteDelegate" );

		struct AddReadOnlineStatsCompleteDelegateParams
		{
			ReadOnlineStatsCompleteDelegate ReadOnlineStatsCompleteDelegate; //offset = 0, size = 12
		} params;

		params.ReadOnlineStatsCompleteDelegate = ReadOnlineStatsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::ReadOnlineStatsByRankAroundPlayer( Byte LocalUserNum, OnlineStatsRead* StatsRead, Int NumRows )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadOnlineStatsByRankAroundPlayer" );

		struct ReadOnlineStatsByRankAroundPlayerParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			OnlineStatsRead* StatsRead; //offset = 4, size = 4
			Int NumRows; //offset = 8, size = 4
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.StatsRead = StatsRead;
		params.NumRows = NumRows;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::ReadOnlineStatsByRank( OnlineStatsRead* StatsRead, Int StartIndex, Int NumToRead )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadOnlineStatsByRank" );

		struct ReadOnlineStatsByRankParams
		{
			OnlineStatsRead* StatsRead; //offset = 0, size = 4
			Int StartIndex; //offset = 4, size = 4
			Int NumToRead; //offset = 8, size = 4
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.StatsRead = StatsRead;
		params.StartIndex = StartIndex;
		params.NumToRead = NumToRead;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::ReadOnlineStatsForFriends( Byte LocalUserNum, OnlineStatsRead* StatsRead )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadOnlineStatsForFriends" );

		struct ReadOnlineStatsForFriendsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			OnlineStatsRead* StatsRead; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.StatsRead = StatsRead;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::ReadOnlineStats( Array<UniqueNetId> Players, OnlineStatsRead* StatsRead )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadOnlineStats" );

		struct ReadOnlineStatsParams
		{
			Array<UniqueNetId> Players; //offset = 0, size = 12
			OnlineStatsRead* StatsRead; //offset = 12, size = 4
			Bool ReturnValue: 1; //offset = 16, size = 4
		} params;

		params.Players = Players;
		params.StatsRead = StatsRead;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::SetSpeechRecognitionObject( Byte LocalUserNum, SpeechRecognition* SpeechRecogObj )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SetSpeechRecognitionObject" );

		struct SetSpeechRecognitionObjectParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			SpeechRecognition* SpeechRecogObj; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.SpeechRecogObj = SpeechRecogObj;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::SelectVocabulary( Byte LocalUserNum, Int VocabularyId )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SelectVocabulary" );

		struct SelectVocabularyParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Int VocabularyId; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.VocabularyId = VocabularyId;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearRecognitionCompleteDelegate( Byte LocalUserNum, RecognitionDelegate RecognitionDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearRecognitionCompleteDelegate" );

		struct ClearRecognitionCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			RecognitionDelegate RecognitionDelegate; //offset = 4, size = 12
			Int RemoveIndex; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.RecognitionDelegate = RecognitionDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddRecognitionCompleteDelegate( Byte LocalUserNum, RecognitionDelegate RecognitionDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddRecognitionCompleteDelegate" );

		struct AddRecognitionCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			RecognitionDelegate RecognitionDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.RecognitionDelegate = RecognitionDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnRecognitionComplete()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnRecognitionComplete" );

		this->call_function( function, 0, 0 );
	}

	Bool OnlineSubsystemPC::GetRecognitionResults( Byte LocalUserNum, Array<SpeechRecognizedWord> Words )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetRecognitionResults" );

		struct GetRecognitionResultsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Array<SpeechRecognizedWord> Words; //offset = 4, size = 12
			Bool ReturnValue: 1; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Words = Words;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::StopSpeechRecognition( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.StopSpeechRecognition" );

		struct StopSpeechRecognitionParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::StartSpeechRecognition( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.StartSpeechRecognition" );

		struct StartSpeechRecognitionParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::StopNetworkedVoice( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.StopNetworkedVoice" );

		struct StopNetworkedVoiceParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::StartNetworkedVoice( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.StartNetworkedVoice" );

		struct StartNetworkedVoiceParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearPlayerTalkingDelegate( TalkerDelegate TalkerDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearPlayerTalkingDelegate" );

		struct ClearPlayerTalkingDelegateParams
		{
			TalkerDelegate TalkerDelegate; //offset = 0, size = 12
		} params;

		params.TalkerDelegate = TalkerDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddPlayerTalkingDelegate( TalkerDelegate TalkerDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddPlayerTalkingDelegate" );

		struct AddPlayerTalkingDelegateParams
		{
			TalkerDelegate TalkerDelegate; //offset = 0, size = 12
		} params;

		params.TalkerDelegate = TalkerDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnPlayerTalking( UniqueNetId Player )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnPlayerTalking" );

		struct OnPlayerTalkingParams
		{
			UniqueNetId Player; //offset = 0, size = 8
		} params;

		params.Player = Player;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::UnmuteRemoteTalker( Byte LocalUserNum, UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.UnmuteRemoteTalker" );

		struct UnmuteRemoteTalkerParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::MuteRemoteTalker( Byte LocalUserNum, UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.MuteRemoteTalker" );

		struct MuteRemoteTalkerParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::SetRemoteTalkerPriority( Byte LocalUserNum, UniqueNetId PlayerID, Int Priority )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.SetRemoteTalkerPriority" );

		struct SetRemoteTalkerPriorityParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Int Priority; //offset = 12, size = 4
			Bool ReturnValue: 1; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;
		params.Priority = Priority;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::IsHeadsetPresent( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsHeadsetPresent" );

		struct IsHeadsetPresentParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::IsRemotePlayerTalking( UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsRemotePlayerTalking" );

		struct IsRemotePlayerTalkingParams
		{
			UniqueNetId PlayerID; //offset = 0, size = 8
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::IsLocalPlayerTalking( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsLocalPlayerTalking" );

		struct IsLocalPlayerTalkingParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::UnregisterRemoteTalker( UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.UnregisterRemoteTalker" );

		struct UnregisterRemoteTalkerParams
		{
			UniqueNetId PlayerID; //offset = 0, size = 8
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::RegisterRemoteTalker( UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.RegisterRemoteTalker" );

		struct RegisterRemoteTalkerParams
		{
			UniqueNetId PlayerID; //offset = 0, size = 8
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::UnregisterLocalTalker( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.UnregisterLocalTalker" );

		struct UnregisterLocalTalkerParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::RegisterLocalTalker( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.RegisterLocalTalker" );

		struct RegisterLocalTalkerParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::GetFriendsList( Byte LocalUserNum, Array<OnlineFriend> Friends, Int Count, Int StartingAt )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetFriendsList" );

		struct GetFriendsListParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Array<OnlineFriend> Friends; //offset = 4, size = 12
			Int Count; //offset = 16, size = 4
			Int StartingAt; //offset = 20, size = 4
			Byte ReturnValue; //offset = 24, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Friends = Friends;
		params.Count = Count;
		params.StartingAt = StartingAt;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearReadFriendsCompleteDelegate( Byte LocalUserNum, ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearReadFriendsCompleteDelegate" );

		struct ClearReadFriendsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate; //offset = 4, size = 12
			Int RemoveIndex; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReadFriendsCompleteDelegate = ReadFriendsCompleteDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddReadFriendsCompleteDelegate( Byte LocalUserNum, ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddReadFriendsCompleteDelegate" );

		struct AddReadFriendsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReadFriendsCompleteDelegate ReadFriendsCompleteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReadFriendsCompleteDelegate = ReadFriendsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnReadFriendsComplete( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnReadFriendsComplete" );

		struct OnReadFriendsCompleteParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::ReadFriendsList( Byte LocalUserNum, Int Count, Int StartingAt )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadFriendsList" );

		struct ReadFriendsListParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Int Count; //offset = 4, size = 4
			Int StartingAt; //offset = 8, size = 4
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Count = Count;
		params.StartingAt = StartingAt;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearWriteProfileSettingsCompleteDelegate( Byte LocalUserNum, WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearWriteProfileSettingsCompleteDelegate" );

		struct ClearWriteProfileSettingsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate; //offset = 4, size = 12
			Int RemoveIndex; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.WriteProfileSettingsCompleteDelegate = WriteProfileSettingsCompleteDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddWriteProfileSettingsCompleteDelegate( Byte LocalUserNum, WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddWriteProfileSettingsCompleteDelegate" );

		struct AddWriteProfileSettingsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			WriteProfileSettingsCompleteDelegate WriteProfileSettingsCompleteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.WriteProfileSettingsCompleteDelegate = WriteProfileSettingsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnWriteProfileSettingsComplete( Byte LocalUserNum, Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnWriteProfileSettingsComplete" );

		struct OnWriteProfileSettingsCompleteParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool bWasSuccessful: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::WriteProfileSettings( Byte LocalUserNum, OnlineProfileSettings* ProfileSettings )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.WriteProfileSettings" );

		struct WriteProfileSettingsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			OnlineProfileSettings* ProfileSettings; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ProfileSettings = ProfileSettings;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	OnlineProfileSettings* OnlineSubsystemPC::GetProfileSettings( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetProfileSettings" );

		struct GetProfileSettingsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			OnlineProfileSettings* ReturnValue; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearReadProfileSettingsCompleteDelegate( Byte LocalUserNum, ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearReadProfileSettingsCompleteDelegate" );

		struct ClearReadProfileSettingsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate; //offset = 4, size = 12
			Int RemoveIndex; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReadProfileSettingsCompleteDelegate = ReadProfileSettingsCompleteDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddReadProfileSettingsCompleteDelegate( Byte LocalUserNum, ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddReadProfileSettingsCompleteDelegate" );

		struct AddReadProfileSettingsCompleteDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			ReadProfileSettingsCompleteDelegate ReadProfileSettingsCompleteDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ReadProfileSettingsCompleteDelegate = ReadProfileSettingsCompleteDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnReadProfileSettingsComplete( Byte LocalUserNum, Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnReadProfileSettingsComplete" );

		struct OnReadProfileSettingsCompleteParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool bWasSuccessful: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::ReadProfileSettings( Byte LocalUserNum, OnlineProfileSettings* ProfileSettings )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ReadProfileSettings" );

		struct ReadProfileSettingsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			OnlineProfileSettings* ProfileSettings; //offset = 4, size = 4
			Bool ReturnValue: 1; //offset = 8, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ProfileSettings = ProfileSettings;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearFriendsChangeDelegate( Byte LocalUserNum, FriendsDelegate FriendsDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearFriendsChangeDelegate" );

		struct ClearFriendsChangeDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			FriendsDelegate FriendsDelegate; //offset = 4, size = 12
			Int RemoveIndex; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendsDelegate = FriendsDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddFriendsChangeDelegate( Byte LocalUserNum, FriendsDelegate FriendsDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddFriendsChangeDelegate" );

		struct AddFriendsChangeDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			FriendsDelegate FriendsDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.FriendsDelegate = FriendsDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearMutingChangeDelegate( MutingDelegate MutingDelegate, Int RemoveIndex )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearMutingChangeDelegate" );

		struct ClearMutingChangeDelegateParams
		{
			MutingDelegate MutingDelegate; //offset = 0, size = 12
			Int RemoveIndex; //offset = 12, size = 4
		} params;

		params.MutingDelegate = MutingDelegate;
		params.RemoveIndex = RemoveIndex;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddMutingChangeDelegate( MutingDelegate MutingDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddMutingChangeDelegate" );

		struct AddMutingChangeDelegateParams
		{
			MutingDelegate MutingDelegate; //offset = 0, size = 12
		} params;

		params.MutingDelegate = MutingDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearLoginCancelledDelegate( CancelledDelegate CancelledDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearLoginCancelledDelegate" );

		struct ClearLoginCancelledDelegateParams
		{
			CancelledDelegate CancelledDelegate; //offset = 0, size = 12
		} params;

		params.CancelledDelegate = CancelledDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddLoginCancelledDelegate( CancelledDelegate CancelledDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddLoginCancelledDelegate" );

		struct AddLoginCancelledDelegateParams
		{
			CancelledDelegate CancelledDelegate; //offset = 0, size = 12
		} params;

		params.CancelledDelegate = CancelledDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::ClearLoginChangeDelegate( LoginDelegate LoginDelegate, Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearLoginChangeDelegate" );

		struct ClearLoginChangeDelegateParams
		{
			LoginDelegate LoginDelegate; //offset = 0, size = 12
			Byte LocalUserNum; //offset = 12, size = 1
		} params;

		params.LoginDelegate = LoginDelegate;
		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddLoginChangeDelegate( LoginDelegate LoginDelegate, Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddLoginChangeDelegate" );

		struct AddLoginChangeDelegateParams
		{
			LoginDelegate LoginDelegate; //offset = 0, size = 12
			Byte LocalUserNum; //offset = 12, size = 1
		} params;

		params.LoginDelegate = LoginDelegate;
		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::ShowFriendsUI( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ShowFriendsUI" );

		struct ShowFriendsUIParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::IsMuted( Byte LocalUserNum, UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsMuted" );

		struct IsMutedParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::AreAnyFriends( Byte LocalUserNum, Array<FriendsQuery> Query )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AreAnyFriends" );

		struct AreAnyFriendsParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Array<FriendsQuery> Query; //offset = 4, size = 12
			Bool ReturnValue: 1; //offset = 16, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.Query = Query;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::IsFriend( Byte LocalUserNum, UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.IsFriend" );

		struct IsFriendParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanShowPresenceInformation( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanShowPresenceInformation" );

		struct CanShowPresenceInformationParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanViewPlayerProfiles( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanViewPlayerProfiles" );

		struct CanViewPlayerProfilesParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanPurchaseContent( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanPurchaseContent" );

		struct CanPurchaseContentParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanDownloadUserContent( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanDownloadUserContent" );

		struct CanDownloadUserContentParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanCommunicate( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanCommunicate" );

		struct CanCommunicateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::CanPlayOnline( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.CanPlayOnline" );

		struct CanPlayOnlineParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	String OnlineSubsystemPC::GetPlayerNickname( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetPlayerNickname" );

		struct GetPlayerNicknameParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			String ReturnValue; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::GetUniquePlayerId( Byte LocalUserNum, UniqueNetId PlayerID )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetUniquePlayerId" );

		struct GetUniquePlayerIdParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			UniqueNetId PlayerID; //offset = 4, size = 8
			Bool ReturnValue: 1; //offset = 12, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.PlayerID = PlayerID;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Byte OnlineSubsystemPC::GetLoginStatus( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.GetLoginStatus" );

		struct GetLoginStatusParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ReturnValue; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearLogoutCompletedDelegate( Byte LocalUserNum, LogoutDelegate LogoutDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearLogoutCompletedDelegate" );

		struct ClearLogoutCompletedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			LogoutDelegate LogoutDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.LogoutDelegate = LogoutDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddLogoutCompletedDelegate( Byte LocalUserNum, LogoutDelegate LogoutDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddLogoutCompletedDelegate" );

		struct AddLogoutCompletedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			LogoutDelegate LogoutDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.LogoutDelegate = LogoutDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnLogoutCompleted( Bool bWasSuccessful )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnLogoutCompleted" );

		struct OnLogoutCompletedParams
		{
			Bool bWasSuccessful: 1; //offset = 0, size = 4
		} params;

		params.bWasSuccessful = bWasSuccessful;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::Logout( Byte LocalUserNum )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.Logout" );

		struct LogoutParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::ClearLoginFailedDelegate( Byte LocalUserNum, LoginDelegate LoginDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ClearLoginFailedDelegate" );

		struct ClearLoginFailedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			LoginDelegate LoginDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.LoginDelegate = LoginDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::AddLoginFailedDelegate( Byte LocalUserNum, LoginDelegate LoginDelegate )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AddLoginFailedDelegate" );

		struct AddLoginFailedDelegateParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			LoginDelegate LoginDelegate; //offset = 4, size = 12
		} params;

		params.LocalUserNum = LocalUserNum;
		params.LoginDelegate = LoginDelegate;

		this->call_function( function, &params, 0 );
	}

	void OnlineSubsystemPC::OnLoginFailed( Byte LocalUserNum, Byte ErrorCode )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnLoginFailed" );

		struct OnLoginFailedParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			Byte ErrorCode; //offset = 1, size = 1
		} params;

		params.LocalUserNum = LocalUserNum;
		params.ErrorCode = ErrorCode;

		this->call_function( function, &params, 0 );
	}

	Bool OnlineSubsystemPC::AutoLogin()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.AutoLogin" );

		struct AutoLoginParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::Login( Byte LocalUserNum, String LoginName, String Password, Bool bWantsLocalOnly )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.Login" );

		struct LoginParams
		{
			Byte LocalUserNum; //offset = 0, size = 1
			String LoginName; //offset = 4, size = 12
			String Password; //offset = 16, size = 12
			Bool bWantsLocalOnly: 1; //offset = 28, size = 4
			Bool ReturnValue: 1; //offset = 32, size = 4
		} params;

		params.LocalUserNum = LocalUserNum;
		params.LoginName = LoginName;
		params.Password = Password;
		params.bWantsLocalOnly = bWantsLocalOnly;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	Bool OnlineSubsystemPC::ShowLoginUI( Bool bShowOnlineOnly )
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.ShowLoginUI" );

		struct ShowLoginUIParams
		{
			Bool bShowOnlineOnly: 1; //offset = 0, size = 4
			Bool ReturnValue: 1; //offset = 4, size = 4
		} params;

		params.bShowOnlineOnly = bShowOnlineOnly;

		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}

	void OnlineSubsystemPC::OnFriendsChange()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnFriendsChange" );

		this->call_function( function, 0, 0 );
	}

	void OnlineSubsystemPC::OnMutingChange()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnMutingChange" );

		this->call_function( function, 0, 0 );
	}

	void OnlineSubsystemPC::OnLoginCancelled()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnLoginCancelled" );

		this->call_function( function, 0, 0 );
	}

	void OnlineSubsystemPC::OnLoginChange()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.OnLoginChange" );

		this->call_function( function, 0, 0 );
	}

	Bool OnlineSubsystemPC::Init()
	{
		static ufunction* function = 0;

		if ( !function )
			function = find_global_object<ufunction>( "Function OnlineSubsystemPC.OnlineSubsystemPC.Init" );

		struct InitParams
		{
			Bool ReturnValue: 1; //offset = 0, size = 4
		} params;


		this->call_function( function, &params, 0 );

		return params.ReturnValue;
	}
}
